1. Field of the Invention
The present invention is directed to the field of database management, and, more specifically, to storing multiple versions of data and resolving conflicts between such versions.
2. Description of the Prior Art
Database management systems (DBMS) enable multiple users to view and change data. For example, users may insert, modify, or delete rows in a data table. In conventional DBMS's, changes are generally committed to the DBMS at the time they are made. Once changes are committed they may be viewed by other users. It is often desirable, however, for a user to make changes without immediately committing the changes. For example, a user may wish to make changes without having the changes visible to other users until the changes have been verified. Thus, there is need for systems and methods to store multiple “versions” of a DBMS, whereby each user may make changes only visible in the user's particular version until the user commits the changes.
Related to the concept of database versioning is the concept of conflict resolution. A conflict occurs when two users change the same data element. For example, a first user may “check out” a first version. While the first version is checked out, the first user may modify a particular row of a data table. Before the first version is “checked in”, a second user may check in a second version in which the same row modified by the first user has been deleted. When the first user checks in the first version, a conflict will occur.
It is desired that database versioning systems in accordance with the present invention enable such conflicts to be efficiently detected and resolved. It is desired that users be alerted to such conflicts and that users have the ability to resolve such conflicts.